const path = require('path')
import build from './build.plugin.js'

export default {
  // Target (https://go.nuxtjs.dev/config-target)
  target: 'server',

  // Global page headers (https://go.nuxtjs.dev/config-head)
  head: {
    title: '华融基建工程公司',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      {
        hid: 'description',
        name: 'description',
        content:
          '具有二级工程施工资质，整合专业单位或个人加入成立协会，达到共享国家行业政策、共享市场业务资源、共享精准配套服务、共享参与利润，共同打造行业一体化服务标杆，一站式综合服务平台。',
      },
      {
        name: 'keywords',
        content: '华融  基建  华基  融基  工程施工  资质  华融基建  工程公司',
      },
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },
      {
        rel: 'stylesheet',
        href:
          'https://zwcf-test.oss-cn-shenzhen.aliyuncs.com/www/asset/swiper/swiper-bundle.min.css', // 引入swiper
      },
    ],
    script: [
      {
        src:
          'https://zwcf-test.oss-cn-shenzhen.aliyuncs.com/www/asset/swiper/swiper-bundle.min.js', // 引入swiper
      },
      {
        hid: 'baidu_tj',
        src: '/js/baidu_tj.js',
      },
    ],
  },

  // Global CSS (https://go.nuxtjs.dev/config-css)
  // 'ant-design-vue/dist/antd.less',
  css: [
    // 'ant-design-vue/dist/antd.less',
    '@assets/css/theme.scss',
    '@assets/css/custom.scss',
  ],
  styleResources: {
    scss: ['~/assets/css/variables.scss', '~/assets/css/mixin.scss'],
  },
  // Plugins to run before rendering page (https://go.nuxtjs.dev/config-plugins)
  plugins: [
    '@/plugins/axioz',
    { src: '@/plugins/element-ui.js', ssr: true },
    '@/plugins/vant-ui.js',

    '@/plugins/common.js',
  ],

  // Auto import components (https://go.nuxtjs.dev/config-components)
  components: true,

  // Modules for dev and build (recommended) (https://go.nuxtjs.dev/config-modules)
  buildModules: [
    // https://go.nuxtjs.dev/typescript
    '@nuxt/typescript-build',
  ],

  // Modules (https://go.nuxtjs.dev/config-modules)
  modules: [
    // https://go.nuxtjs.dev/axios
    '@nuxtjs/axios',
    // https://go.nuxtjs.dev/pwa
    // '@nuxtjs/pwa',
    // https://go.nuxtjs.dev/content
    '@nuxt/content',
    // 注入less scss变量
    '@nuxtjs/style-resources',
    '~/modules/error/index.js',
  ],

  router: {
    // middleware: 'i18n',
  },
  generate: {
    // routes: ['/', '/en'],
  },

  // Axios module configuration (https://go.nuxtjs.dev/config-axios)
  axios: {
    proxy: true, // Can be also an object with default options
  },

  proxy: {
    '/api/': {
      target: 'http://api.local.ny6.com:3080',
      credentials: true, // 表示跨域请求时是否需要使用凭证
      // pathRewrite: { '^/api/': '' },
    },
  },

  server: {
    port: 3000, // default: 3000
    host: '0.0.0.0', // default: localhost,
  },

  // Content module configuration (https://go.nuxtjs.dev/config-content)
  content: {},

  // 公共变量变量，可在客户端服务端访问，组件this.$config访问
  publicRuntimeConfig: {
    phpURL: process.env.PHP_URL,
    subtree: process.env.SUBTREE,
    tokenKey: process.env.TOKEN_KEY,
    domain: process.env.DOMAIN,
  },

  // Build Configuration (https://go.nuxtjs.dev/config-build)
  build: {
    extractCSS: true,
    publicPath: process.env.PUBLIC_PATH,
    styleResources: {
      // less: ['./assets/css/variables.less'],
    },
    vendor: ['axios', 'element-ui'],
    loaders: {
      /* less: {
        lessOptions: {
          javascriptEnabled: true,
          modifyVars: {
            hack:
              'true; @import "' +
              path.resolve(__dirname, './assets/css/variables.less') +
              '"',
          },
        },
      }, */
    },
    babel: {
      plugins: [
        /*  [
          'import',
          {
            libraryName: 'ant-design-vue',
            libraryDirectory: 'es',
            // style: true,
            style: (name) => {
              return `${name}/style/index.less`
            },
          },
          'ant-design-vue',
        ], */
        [
          'import',
          {
            libraryName: 'vant',
            style: (name) => {
              return `${name}/style/less.js`
            },
          },
          'vant',
        ],
      ],
    },
    postcss: {
      // 添加插件名称作为键，参数作为值
      // plugins: {
      //   'postcss-px-to-viewport': {
      //     unitToConvert: 'px', // 默认值`px`，需要转换的单位
      //     viewportWidth: 1920, // 视窗的宽度,对应设计稿宽度
      //     // viewportHeight: 667, // 视窗的高度, 根据375设备的宽度来指定，一般是667，也可不配置
      //     // unitPrecision: 3, // 指定`px`转换为视窗单位值的小数位数
      //     // propList: ["*"], // 转化为vw的属性列表
      //     // viewportUnit: "vw", // 指定需要转换成视窗单位
      //     // fontViewportUnit: "vw", // 字体使用的视窗单位
      //     // selectorBlaskList: [".ignore-"], // 指定不需要转换为视窗单位的类
      //     // mediaQuery: false, // 允许在媒体查询中转换`px`
      //     // minPixelValue: 1, // 小于或等于`1px`时不转换为视窗单位
      //     replace: true, // 是否直接更换属性值而不添加备用属性
      //     // exclude: [/(\/|\\)(node_modules)(\/|\\)/], // 忽略某些文件夹下的文件或特定文件
      //     // landscape: false, // 是否添加根据landscapeWidth生成的媒体查询条件 @media (orientation: landscape)
      //     // landscapeUnit: "vw", // 横屏时使用的单位
      //     // landscapeWidth: 1280 // 横屏时使用的视窗宽度
      //   },
      // },
    },
    transpile: [/ant-design-vue/, /vant.*?less/],
    extend(config) {
      if (build.aliOssPlugin) {
        config.plugins.push(build.aliOssPlugin)
      }
      // config.resolve.alias['@ant-design/icons/lib/dist$'] = path.resolve(
      //   __dirname,
      //   './plugins/antd-icons.js'
      // ) // 引入需要的
    },
  },
}
